package com.hemerasolutions.v2trainer.component.interfaces.table;

import java.util.List;

import javax.faces.event.ActionEvent;

import org.primefaces.event.CellEditEvent;
import org.primefaces.model.TreeNode;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.model.exercise.intensity.IntensityExecution;
import com.hemerasolutions.v2trainer.model.exercise.intensity.IntensityTable;
import com.hemerasolutions.v2trainer.model.exercise.intensity.IntensityZone;
import com.hemerasolutions.v2trainer.model.modality.Modality;
import com.hemerasolutions.v2trainer.model.unit.intensity.Rpe;

public interface IntensityZoneTableCompInterface extends BaseComponentInterface {

	public abstract void refresh();

	public abstract void setRootNode(TreeNode rootNode);

	public abstract TreeNode getRootNode();

	public abstract void setIntensityExecution(IntensityExecution intensityExecution);

	public abstract IntensityExecution getIntensityExecution();

	public abstract void setModality(Modality modality);

	public abstract Modality getModality();

	public abstract void setSelIntensityZone(IntensityZone selIntensityZone);

	public abstract IntensityZone getSelIntensityZone();

	public abstract void setIntensityTable(IntensityTable intensityTable);

	public abstract IntensityTable getIntensityTable();

	public abstract void deleteItensityZone();

	public abstract void downItensityZone();

	public abstract void upItensityZone();

	public abstract void toAddItensityZone();

	public abstract void tableToTree();

	public abstract void treeToTable();

	public abstract void toExecutionTimeDialog(ActionEvent ev);

	public abstract List<Rpe> getFullRpes();

	public abstract void setFullRpes(List<Rpe> fullRpes);

	void onCellChange(CellEditEvent event);

	boolean zoneCanBeChanged();

	boolean zonesCanBeChanged();

	void showUsedZoneError();

}
